package com.kb.medical.service;

import com.kb.medical.entity.UserFile;

import java.util.List;

public interface FileService {


    /**
     * 根据userid创建文件夹
     *
     * @param userid
     * @return 返回创建的文件路径
     */
    String createFolder(int userid);

    /**
     * 文件写入数据库
     *
     * @param file
     */
    void fileInsert(UserFile file);

    /**
     * 通过文件名获取文件信息
     *
     * @param fileName
     * @return
     */
    UserFile getByFileName(String fileName);

    /**
     * 根据文件id获取文件路径
     *
     * @param id
     * @return
     */
    UserFile getById(int id);

    /**
     * 删除指定文件夹
     *
     * @param fileName 文件夹路径
     */
    void deleteFolder(String fileName);


    /**
     * 查询用户当前已经上传的文献
     *
     * @param userId 用户id
     * @param n      想要查询的页数
     * @return
     */
    List<UserFile> findByUserid(int userId, int n);

    /**
     * 获取pdfpath正则语句
     *
     * @param pdfPath
     * @return
     */
    String pdfPath(String pdfPath);

    /**
     * 更新获取文件总页数
     *
     * @param id   文件id
     * @param path pdftxt的文件夹路径
     * @return 文件总页数
     */
    void updatePage(int id, String path);


    /**
     * 更改路径为局域网的地址
     *
     * @param path
     * @return
     */
    String localPath(String path);

    /**
     * 文件预览路径
     *
     * @param documentId 文件id
     * @return 文件本地预览地址
     */
    String pdfDownload(int documentId);

    /**
     * 根据documentId更新点击数
     *
     * @param click
     * @param id
     */
    void updateClickByDocId(int click, int id);

    /**
     * 根据documentId更新点赞数
     *
     * @param like
     * @param id
     */

    void updateLikeByDocId(int like, int id);

    /**
     * 获取pdf文件名字符串删除后缀的.pdf
     *
     * @param pdfOldName
     * @return
     */
    String pdfRename(String pdfOldName);


    /**
     * 删除当前用户上传的文件以及es数据
     *
     * @param userId
     * @param documentId
     * @return 返回0 没有该文件 ，返回1 已删除当前文件
     */
    Integer deleteDataByDocumentId(int userId, int documentId);


}
